The resources and time required to print from an application program to a hard copy output device can have a direct effect on a user's productivity as well as the overall cost of a hard copy output device. As a result, there is a continuing interest to develop techniques which improve printing performance of hard copy output devices by reducing bottlenecks which affect the time it takes to print a document from an application program. Additionally, there is a strong interest to develop techniques which reduce the required memory resources of a hard copy output device since such reduction will reduce the overall cost of the hard copy output device.
For purposes of this disclosure, it is understood that a hard copy output device comprises any device capable of generating output jobs, such as print jobs delivered from a page printer, and including documents having one or more pages printed thereon.
For the case of page printers, a typical printer receives print data from a host computer in the form of a printer control language data stream which is transmitted over a standard interface extending between the host and the printer. The data stream includes print function commands that are interspersed with print data. One potential bottleneck that may affect printing time is the time it takes to transmit a data stream from the host computer to a printer. Transmission time generally increases as the amount of print data and printer resolution increases. By transmitting common page print data only once to a printer, print job transmission time may be reduced by reducing the amount of print data that is required to be transmitted. The common page print data can then be stored in printer memory and thereafter only unique page print data need be transmitted to the printer.
Common page print data are representative of common page aspects between pages that are to be printed. U.S. patent application Ser. No. 08/936,568, entitled “Method and Apparatus for Reducing Printer Memory”, describes one technique for optimizing the printing of various image elements across many pages. However, this technique is limited to background image elements that are repeated on every printed page. Such invention attempts to optimize the use of internal memory within a printer, instead of optimizing the usage of images for repeated use. The terms “common page aspects” and “unique page aspects” are illustrated in the above patent application, which is incorporated herein by reference. One example of a common page aspect is a common page background that includes background image elements that are repeated on every printed page. One example of a unique page aspect is information which varies between pages of a print job.
Within the art, there exist various printer control languages that allow for identification of common page print data by using particular print function commands. For example, Printer Control Language (PCL) forms the command language for Hewlett-Packard LaserJet printers. PCL has become a de facto standard that is used in many printers and typesetters. One commonly used printer control language, PCL Level 5, permits common page print data to be identified by the use of a Macro 11 “Create Bitmap of Macro” command. When such command is utilized, the common page print data is rasterized, then stored into printer memory. Thereafter, the rasterized version of the common page print data may be combined with unique page print data and printed by use of the Macro 4 “Enable Macro for Overlay” command. Such commands are fully described in the PCL Implementors' Guide, Version 6.0, May 1, 1995, pp. 18-8 to 18-10, inclusive. Such pages are incorporated herein by reference as if set out in full. Another commonly used printer control language, PostScript, has somewhat similar capabilities by use of a “Copypage” command. Such command causes the current rasterized page (e.g., a rasterized version of the common page print data) to be combined with the next page (e.g., unique page print data) in the data stream. Such command is described in the PostScript Language Reference Manual, Second edition, page 379. This page is incorporated herein by reference as if set out in full.
Recent advances in printer capabilities, such as the addition of 24-bit color capabilities, have increased the amount of print data required to represent a page. As a result, various data compression techniques are used to reduce the memory requirements, which also reduces costs, of these advanced printing systems. For instance, U.S. Pat. No. 4,558,302 describes a well-known data compression technique for printers. Such U.S. Pat. No. 4,558,302 is incorporated herein by reference as if set out in full.
For the particular case where a print job includes many pages that have static page aspects such as common image elements, there is a significant performance penalty associated with carrying out such printing operation. More particularly, a host computer is required to repeatedly send print commands and data for the common image elements, for each page. Hence, the printer is required to repeatedly render these common image elements when printing each page. As a result, a significant amount of additional time is required to render such print job in the form of hard copy output, such as a document. Additionally, a significant amount of computational time and memory storage are concurrently required during such repeated rendering.